package com.example.common.utils;

import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;
import java.util.concurrent.TimeUnit;

/**
 * 登入模块
 * Redis 工具类
 */
@Component
public class RedisUtils {

    @Resource
    private StringRedisTemplate stringRedisTemplate; // Spring Data Redis 提供的 StringRedisTemplate 类

    // 存储令牌（键：token，值：userId，设置过期时间）
    public void setToken(String token, Long userId, long expiration) {
        stringRedisTemplate.opsForValue().set(
                "token:" + token,
                userId.toString(),
                expiration,
                TimeUnit.MILLISECONDS
        );
    }

    // 验证令牌是否存在（未被拉黑）
    public boolean hasToken(String token) {
        return Boolean.TRUE.equals(stringRedisTemplate.hasKey("token:" + token));
    }

    // 删除令牌（登出时）
    public void deleteToken(String token) {
        stringRedisTemplate.delete("token:" + token);
    }
}
